package com.ctshk.rpc.system.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.system.dto.MainDataCollectionDetailListDTO;
import com.ctshk.rpc.system.req.*;

/**
 * <p>
 *
 * </p>
 *
 * @author xuhui
 * @since 1/26/2021
 */
public interface IMainDataCollectionService {


    /**
     * 查看代收費用項列表
     * @param mainDataCollectionDetailListReq
     * @return
     */
    PageResponse<MainDataCollectionDetailListDTO> list(MainDataCollectionDetailListReq mainDataCollectionDetailListReq);

    /**
     * 新增代收費用項
     * @param req
     * @param tokenUser
     * @return
     */
    Result add(MainDataCollectionDetailAddReq req, TokenUser tokenUser);

    /**
     * 編輯代收費用項
     * @param mainDataCollectionDetailupdateReq
     * @param tokenUser
     * @return
     */
    Result update(MainDataCollectionDetailUpdateReq mainDataCollectionDetailupdateReq, TokenUser tokenUser);

    /**
     * 查詢代收費用項
     * @param mainDataCollectionDetailReq
     * @param tokenUser
     * @return
     */
    Result detail(MainDataCollectionOneDetailReq mainDataCollectionDetailReq, TokenUser tokenUser);

    /**
     * 刪除代收費用項
     * @param collectionDetailsId
     * @param tokenUser
     * @return
     */
    Result delete(Long collectionDetailsId, TokenUser tokenUser);

    /**
     * 編輯代收費用項狀態
     * @param mainDataCollectionDetailUpdateStatusReq
     * @param tokenUser
     * @return
     */
    Result modifyStatus(MainDataCollectionDetailUpdateStatusReq mainDataCollectionDetailUpdateStatusReq, TokenUser tokenUser);
}
